package com.corffen.algorithm.stack;

import java.util.Stack;

public class RPN {

    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<>();
        String operators = "+-*/";
        for (String token : tokens) {
            if (!operators.contains(token)) {
                stack.push(Integer.valueOf(token));
                continue;
            }
            //先弹出来的是操作符后面的数
            int a = stack.pop();
            //后弹出来的是操作符前面的数
            int b = stack.pop();
            //不要用==去判断,而是用equals
            if ("+".equals(token)) {
                stack.push(b + a);
            } else if ("-".equals(token)) {
                stack.push(b - a);
            } else if ("*".equals(token)) {
                stack.push(b * a);
            } else if ("/".equals(token)) {
                stack.push(b / a);
            }
        }
        return stack.pop();
    }
}
